package design.mode.proxy.staticProxy;

/**
 * 代理主题角色：也叫做委托类、代理类，该角色负责控制对真实主题的引用，<br/>
 * 负责在需要的时候创建或删除真实主题对象，并且在真实主题角色处理完毕前后做预处理和善后处理工作
 */
public class CatProxy implements IAnimal {

    private Cat cat;

    public CatProxy(Cat cat) {
        this.cat = cat;
    }

    @Override
    public void action() {
        System.out.println("rootnet 设计模式演示：proxy before");
        cat.action();
        System.out.println("rootnet 设计模式演示：proxy after");
    }

    @Override
    public void breath() {
        System.out.println("rootnet 设计模式演示：proxy before");
        cat.breath();
        System.out.println("rootnet 设计模式演示：proxy after");
    }
}
